package com.wolf.etl.core.rule.check;

import com.wolf.util.StringUtils;
import com.wolf.vo.BaseResult;
import org.springframework.stereotype.Component;

import java.text.ParseException;
import java.text.SimpleDateFormat;

/**
 * @author sdyang
 * @date 2019/10/21 17:08
 **/
@Component("cHECK_IS_DATETIME")
public class CHECK_IS_DATETIME extends AbstractCheckRule {

    public final static String DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";

    @Override
    public BaseResult check(String cxt, String value) {

        // 日期格式为空，则使用默认的日期格式
        if (StringUtils.isEmpty(cxt)) {
            cxt = DEFAULT_FORMAT;
        }

        SimpleDateFormat format = new SimpleDateFormat(cxt);
        try {
            format.setLenient(false);
            format.parse(value);
        } catch (ParseException e) {
            // 日期转换失败
            return BaseResult.getFailure("非日期格式：%s", cxt);
        }
        return BaseResult.getSuccess();

    }
}
